]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
calendar: do not call destroy() recursively
authorCosimo Cecchi <cosimo@endlessm.com>
Thu, 11 Oct 2018 02:08:38 +0000 (19:08 -0700)
committerFlorian Müllner <florian.muellner@gmail.com>
Sat, 10 Nov 2018 10:56:49 +0000 (10:56 +0000)
We have a callback that will call close() when the notification is
destroyed, and a callback that will call destroy() on the notification
when the message is closed.

Currently, if the notification is destroyed we'll execute our callback
that will call again destroy() on the notification. That's bad
practice in general, and it also has the side effect of resetting the
destroy reason.

This commit avoids re-destroying the notification by dropping the
notification reference on destroy.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/258

js/ui/calendar.js

index 241a91db43527cfd52ffc50c190a40c58819db74..432986391752e818d86ab8e4df295f441a03d808 100644 (file)
@@ -773,9 +773,11 @@ var NotificationMessage = new Lang.Class({
 
         this.connect('close', () => {
             this._closed = true;
-            this.notification.destroy(MessageTray.NotificationDestroyedReason.DISMISSED);
+            if (this.notification)
+                this.notification.destroy(MessageTray.NotificationDestroyedReason.DISMISSED);
         });
         this._destroyId = notification.connect('destroy', () => {
+            this.notification = null;
             if (!this._closed)
                 this.close();
         });